package net.qhzw.vip.qiyu.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 租车申请表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "dts_car_rental")
public class DtsCarRental {
    /**
     * ID
     */
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;

    /**
     * 商铺ID
     */
    @TableField(value = "shop_id")
    private Long shopId;

    /**
     * 用户ID
     */
    @TableField(value = "user_id")
    private Long userId;

    /**
     * 站点ID
     */
    @TableField(value = "community_id")
    private Long communityId;

    /**
     * 站点管理员提交人员
     */
    @TableField(value = "admin_id")
    private Long adminId;

    /**
     * 内容
     */
    @TableField(value = "content")
    private String content;

    /**
     * 租聘方式 1：整车 2：电池
     */
    @TableField(value = "`lease`")
    private Byte lease;

    /***
     *  电池id 产品规格资费配置ID
     */
    @TableField(value = "electric_veh_brand_id")
    private Long electricVehBrandId;

    /***
     * 电动车ID
     */
    @TableField(value = "repair_code_id")
    private Long repairCodeId;

    /**
     * 租车状态 0:申请租车 1:进行中 2:合同期内 3:租车申请流程完成 4:合同结束
     */
    @TableField(value = "status")
    private Byte status;

    /***
     * 系统资费ID
     */
//    @TableField(value = "postage_id")
//    private Long postageId;

    /**
     * 创建时间
     */
    @TableField(value = "created")
    private Date created;

//    /**
//     * 修改时间
//     */
//    @TableField(value = "update_time")
//    private Date updateTime;

    @ApiModelProperty(value = "当前时间次月19号天数")
    @TableField(value = "next_month19day")
    private Integer nextMonth19day;

    @ApiModelProperty(value = "押金")
    @TableField(value = "deposit")
    private BigDecimal deposit;

    @ApiModelProperty(value = "租金")
    @TableField(value = "rent")
    private BigDecimal rent;

    @ApiModelProperty(value = "日租金")
    @TableField(value = "day_rent")
    private BigDecimal dayRent;

    @ApiModelProperty(value = "预收租金")
    @TableField(value = "advance_rcpt_rent")
    private BigDecimal advanceRcptRent;


    @ApiModelProperty(value = "租车总金额")
    @TableField(value = "total_rent")
    private BigDecimal totalRent;


    @ApiModelProperty(value = "提交日期")
    @TableField(value = "sub_date")
    private Date subDate;


    /**
     * 订单号
     */
    @TableField(value = "order_number")
    private String orderNumber;

    /**
     * 是否已经支付，1：已经支付过，0：，没有支付过
     */
    @TableField(value = "is_payed")
    private Byte isPayed;

    /**
     * 付款时间
     */
    @TableField(value = "pay_time")
    private Date payTime;

    @ApiModelProperty(value = "车辆照片 6张")
    @TableField(value = "vehicle_photo")
    private String vehiclePhoto;

    @ApiModelProperty(value = "车辆备注")
    @TableField(value = "vehicle_remark")
    private String vehicleRemark;

    @ApiModelProperty(value = "付款凭证")
    @TableField(value = "payment_voucher")
    private String paymentVoucher;

    @ApiModelProperty(value = "用户签名")
    @TableField(value = "user_sign")
    private String userSign;

    @ApiModelProperty(value = "担保公司ID")
    @TableField(value = "guarantee_company_id")
    private Long guaranteeCompanyId;

    @ApiModelProperty(value = "合同编号")
    @TableField(value = "contract_no")
    private String contractNo;

    @ApiModelProperty(value = "合同编号类型")
    @TableField(value = "contract_type")
    private String contractType;


    @ApiModelProperty(value = "审核意见")
    @TableField(value = "audit_opinion")
    private String auditOpinion;

    @ApiModelProperty(value = "审核通过时间")
    @TableField(value = "approval_time")
    private Date approvalTime;

    @ApiModelProperty(value = "换车状态 1:换车新申请 2:换车申请提交 3:后台审核通过")
    @TableField(value = "transfer_status")
    private Byte transferStatus;

    @ApiModelProperty(value = "退车状态 1:退车新申请 2:退车申请提交 3:退车审核通过")
    @TableField(value = "retreat_status")
    private Byte retreatStatus;


    @ApiModelProperty(value = "0：未确定 1：担保 2：不担保")
    @TableField(value = "warranty_status")
    private Byte warrantyStatus;

    /**
     * 退租时间
     */
    @TableField(value = "termination_date")
    private Date terminationDate;


    /**
     * 报停状态
     *  0: 正常 1:报停
     */
    @TableField(value = "stop_rep")
    private int stopRep;

}